package com.sumainfor.pc.market.feign.GmioFeign;

import com.sumainfor.common.util.JsonResult;
import com.sumainfor.common.utlis.Pager;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * 功能描述:
 *
 * @Auther: zhlu
 * @Date: 2019/1/12 16:00
 * @Description:
 */
public interface GmioFeign {

    /**
     * 功能描述:
     * 获取业主提前收房列表
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/1/12 16:03
     */
    @ResponseBody
    @GetMapping("/key/houow/getHousingOwList")
    JsonResult getHousingOwList(@RequestParam(value = "params") Map<String, Object> params, @RequestParam("pager") Pager pager);

    /**
     * 功能描述:
     * 业主放弃提前收房
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/1/15 19:54
     */
    @ResponseBody
    @PostMapping("/key/houow/UpdateHousingOwGiveUp")
    JsonResult UpdateHousingOwGiveUp(@RequestBody Map<String, Object> params);

    /**
     * 功能描述:
     * 发起违约单
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/1/16 15:31
     */
    @ResponseBody
    @PostMapping("/key/houow/AddHousingOwInfo")
    JsonResult AddHousingOwInfo(@RequestBody Map<String, Object> params);

    /**
     * 功能描述:
     * 根据房源编号查询业主联系人变更列表
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/1/17 20:46
     */
    @ResponseBody
    @GetMapping("/key/HouOwContact/getHouOwcontactList")
    JsonResult getHouOwcontactList(@RequestParam(value = "params") Map<String, Object> params, @RequestParam("pager") Pager pager);

    /**
     * 功能描述:
     * 根据房源编号查询业主成员变更记录
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/1/17 20:46
     */
    @ResponseBody
    @GetMapping("/key/HouOwmember/getHouOwmemberList")
    JsonResult getHouOwmemberList(@RequestParam(value = "params") Map<String, Object> params, @RequestParam("pager") Pager pager);

    /**
     * 功能描述:
     * 根据房源编号查询业主收款人变更列表
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/1/17 20:46
     */
    @ResponseBody
    @GetMapping("/key/HouOwContact/getHouOwPayeeList")
    JsonResult getHouOwPayeeList(@RequestParam(value = "params") Map<String, Object> params, @RequestParam("pager") Pager pager);

    /**
     * 功能描述:
     * 根据业主合同资料生成唐巢支付业主的账单
     * 1.新业主收房信息补全之前生成。
     * 2.续签业主在第一份合同到期之后定时任务生成
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/3/25 10:42
     */
    @ResponseBody
    @PostMapping("/key/bill/AddBillOwner")
    JsonResult AddBillOwner(@RequestBody Map<String, Object> params);

    /**
     * 功能描述:
     * 根据业主账单编号获取业主账单资料
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/1 19:49
     */
    @GetMapping("/key/bill/getOwnerBillMap")
    JsonResult getOwnerBillMap(@RequestParam Map<String, Object> params);

    /**
     * 功能描述:
     * 根据管家编号获取评价的分数，如果没有分数默认五分
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/6 19:33
     */
    @GetMapping("/key/keep/getKeepAvgRangeMap")
    JsonResult getKeepAvgRangeMap(@RequestParam Map<String, Object> params);

    /**
     * 功能描述:
     * 根据账单编号获取账单基本资料
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/28 15:51
     */
    @GetMapping("/key/bill/getTrenantBill")
    JsonResult getTrenantBill(@RequestParam Map<String, Object> params);

    /**
     * 功能描述:
     * 获取总经办运营部相关统计
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/11 16:18
     */
    @RequestMapping(value = "/key/manager/getManagerGmioCount", method = RequestMethod.POST)
    JsonResult getManagerGmioCount(@RequestBody Map<String, Object> params);

    /**
     * 功能描述:
     * 获取总经办列表详情
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/15 20:17
     */
    @RequestMapping(value = "/key/manager/getManagerGmioCountList", method = RequestMethod.POST)
    JsonResult getManagerGmioCountList(@RequestBody Map<String, Object> params);


    /**
     * 查询 总经办工作台数据
     *
     * @param params
     * @return
     */
    @PostMapping("/key/provider/gmf/getComFieldData")
    Map<String, Object> getComFieldData(@RequestBody Map<String, Object> params);


    /**
     * 投诉类型统计
     *
     * @param year
     * @return
     */
    @PostMapping("/key/provider/gmf/getComplaint")
    List<Map<String, Object>> getComplaint(@RequestParam("year") String year);


    /**
     * 根据房源查询收费标准数据
     *
     * @param params
     * @return
     */
    @PostMapping("/key/provider/gmf/selectRates")
    JsonResult selectRates(@RequestParam Map<String, Object> params);


    /**
     * 创建企业账单临时账单
     *
     * @param params
     * @return
     */
    @PostMapping("/key/bill/createTempOrder")
    JsonResult createTempOrder(@RequestBody Map<String, Object> params);

    /**
     * 创建主账单
     *
     * @param params
     * @return
     */
    @PostMapping("/key/bill/createOrderMain")
    JsonResult createOrderMain(@RequestBody Map<String, Object> params);


    /**
     * 查询退租账单
     *
     * @param witId
     * @return
     */
    @PostMapping("/key/bill/getBackOrder")
    JsonResult getBackOrder(@RequestParam("witId") String witId);


    /**
     * zc修改
     * 搜索 运营部用
     *
     * @param keyWord
     * @param roleId
    * @return
     */
    @PostMapping("/key/provider/gmio/search/searchForGmio")
    JsonResult searchForGmio(@RequestParam("keyWord") String keyWord, @RequestParam("roleId") Integer roleId);



    @GetMapping("/key/paIdBill/getPaIdTenantBill")
    List<Map<String,Object>> getPaIdTenantBill(@RequestParam Map<String,Object> params);


    @PostMapping("/key/paIdBill/getRoomBill")
    Map<String,Object> getRoomBill(@RequestBody Map<String,Object> params);
}
